<HTML>

<HEAD>
<!-- Generated by CppDoc v2.4.1 on June 07, 2008 at 22:48-->

	<META NAME="GENERATOR" Content="CppDoc">
	<TITLE>Nestopia Core API: Nes::Api::Cartridge::Profile::Hash</TITLE>

</HEAD>

<BODY>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#eeeeff">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="../../index-overview-summary.html"><B>Overview</B></a>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="project-summary.html"><B>Project</B></a>&nbsp;</TD>
  <TD BGCOLOR="navy"> <FONT COLOR="white">&nbsp;<B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="project-tree.html"><B>Tree</B></a>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="../../index-deprecated-list.html"><B>Deprecated</B></a>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="../../index-all.html"><B>Index</B></a>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<B>Nestopia Core API</B></EM>
</TD>
</TR>

<TR>
<TD><FONT SIZE="-2">
  <a href="../../index.html" target="_top"><B>FRAMES</B></a>  &nbsp;
&nbsp;<a href="../api/Nes..Api..Cartridge..Profile..Hash.html" target="_top"><B>NO FRAMES</B></a></FONT></TD>
</TR>
<TR>
<TD VALIGN="top"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
api</FONT>
<BR>
Class  Nes::Api::Cartridge::Profile::Hash</H2>
<PRE>
<code>Core::ImplicitBool</code>
   |
   +--<B>Nes::Api::Cartridge::Profile::Hash</B>

</PRE>
<HR>
<DL>
<DT>class <B><a href="../api/Nes..Api..Cartridge..Profile.html">Nes::Api::Cartridge::Profile</a>::Hash</B></DT><dt> extends Core::ImplicitBool
</DL>

<p>Hash checksum.
Stores SHA-1 and CRC-32 combined or just one of the two.
<p>

<HR>


<!-- =========== CONSTRUCTOR SUMMARY =========== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#ccccff">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white">
<TD><CODE><B><a href="#Hash(constchar*,constchar*)">Hash</a></B>( const char* sha, const char* crc )</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs new checksum from null-terminated strings.</TD>
</TR>
<TR BGCOLOR="white">
<TD><CODE><B><a href="#Hash(constwchar_t*,constwchar_t*)">Hash</a></B>( const wchar_t* sha, const wchar_t* crc )</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs new checksum from null-terminated wide-strings.</TD>
</TR>
<TR BGCOLOR="white">
<TD><CODE><B><a href="#Hash(constdword*,dword)">Hash</a></B>( const dword* sha, dword crc )</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs new checksum from input values.</TD>
</TR>
<TR BGCOLOR="white">
<TD><CODE><B><a href="#Hash()">Hash</a></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default constructor.</TD>
</TR>
</TABLE>
&nbsp;

<!-- =========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#ccccff">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><a href="#Assign(constwchar_t*,constwchar_t*)">Assign</a></B>( const wchar_t* sha, const wchar_t* crc )</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns new checksum from null-terminated wide-strings.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><a href="#Assign(constdword*,dword)">Assign</a></B>( const dword* sha, dword crc )</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns new checksum from input values.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><a href="#Assign(constchar*,constchar*)">Assign</a></B>( const char* sha, const char* crc )</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns new checksum from null-terminated strings.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><a href="#Clear()">Clear</a></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the current checksum.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><a href="#Compute(constvoid*,ulong)">Compute</a></B>( const void* mem, ulong length )</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Computes and updates checksum from input.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><a href="#Get(char*,char*)">Get</a></B>( char* sha, char* crc ) const</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current checksum.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;dword</CODE></FONT></TD>
<TD><CODE><B><a href="#GetCrc32()">GetCrc32</a></B>() const</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current CRC-32 value.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;const dword*</CODE></FONT></TD>
<TD><CODE><B><a href="#GetSha1()">GetSha1</a></B>() const</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current SHA-1 values.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;bool</CODE></FONT></TD>
<TD><CODE><B><a href="#operator!()">operator!</a></B>() const</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if checksum is cleared.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;bool</CODE></FONT></TD>
<TD><CODE><B><a href="#operator&#60;(constHash&)">operator<</a></B>( const Hash& hash ) const</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tests for less-than.</TD>
</TR>
<TR BGCOLOR="white">
<TD ALIGN="right" VALIGN="top" WIDTH="1%" NOWRAP><FONT SIZE="-1">
<CODE>&nbsp;bool</CODE></FONT></TD>
<TD><CODE><B><a href="#operator==(constHash&)">operator==</a></B>( const Hash& hash ) const</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tests for equality.</TD>
</TR>
</TABLE>
&nbsp;

<BR>
<BR>
<!-- ============ Constructor Detail ========== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#ccccff">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="Hash(constchar*,constchar*)"><!-- --></A>
<A NAME="Hash"><!-- --></A>
<H3>Hash</H3>
<PRE>
public <B>Hash</B>( const char* sha, const char* crc ) throw();
</PRE>
<DL>
<DD>Constructs new checksum from null-terminated strings.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>sha</code> - SHA-1 string, set to NULL if values shouldn't be used
<DD><code>crc</code> - CRC-32 string, set to NULL if value shouldn't be used</DD>
</DL>

</DL>
<HR>

<A NAME="Hash(constwchar_t*,constwchar_t*)"><!-- --></A>
<A NAME="Hash"><!-- --></A>
<H3>Hash</H3>
<PRE>
public <B>Hash</B>( const wchar_t* sha, const wchar_t* crc ) throw();
</PRE>
<DL>
<DD>Constructs new checksum from null-terminated wide-strings.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>sha</code> - SHA-1 string, set to NULL if values shouldn't be used
<DD><code>crc</code> - CRC-32 string, set to NULL if value shouldn't be used</DD>
</DL>

</DL>
<HR>

<A NAME="Hash(constdword*,dword)"><!-- --></A>
<A NAME="Hash"><!-- --></A>
<H3>Hash</H3>
<PRE>
public <B>Hash</B>( const dword* sha, dword crc ) throw();
</PRE>
<DL>
<DD>Constructs new checksum from input values.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>sha</code> - SHA-1 value, set to NULL if values shouldn't be used
<DD><code>crc</code> - CRC-32 value, set to 0 if value shouldn't be used</DD>
</DL>

</DL>
<HR>

<A NAME="Hash()"><!-- --></A>
<A NAME="Hash"><!-- --></A>
<H3>Hash</H3>
<PRE>
public <B>Hash</B>() throw();
</PRE>
<DL>
<DD>Default constructor.
</DD>

</DL>
<HR>

<BR>
<!-- ============ Method Detail ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#ccccff">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="Assign(constwchar_t*,constwchar_t*)"><!-- --></A>
<A NAME="Assign"><!-- --></A>
<H3>Assign</H3>
<PRE>
public void <B>Assign</B>( const wchar_t* sha, const wchar_t* crc ) throw();
</PRE>
<DL>
<DD>Assigns new checksum from null-terminated wide-strings.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>sha</code> - SHA-1 string, set to NULL if values shouldn't be used
<DD><code>crc</code> - CRC-32 string, set to NULL if value shouldn't be used</DD>
</DL>

</DL>
<HR>

<A NAME="Assign(constdword*,dword)"><!-- --></A>
<A NAME="Assign"><!-- --></A>
<H3>Assign</H3>
<PRE>
public void <B>Assign</B>( const dword* sha, dword crc ) throw();
</PRE>
<DL>
<DD>Assigns new checksum from input values.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>sha</code> - SHA-1 value, set to NULL if values shouldn't be used
<DD><code>crc</code> - CRC-32 value, set to 0 if value shouldn't be used</DD>
</DL>

</DL>
<HR>

<A NAME="Assign(constchar*,constchar*)"><!-- --></A>
<A NAME="Assign"><!-- --></A>
<H3>Assign</H3>
<PRE>
public void <B>Assign</B>( const char* sha, const char* crc ) throw();
</PRE>
<DL>
<DD>Assigns new checksum from null-terminated strings.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>sha</code> - SHA-1 string, set to NULL if values shouldn't be used
<DD><code>crc</code> - CRC-32 string, set to NULL if value shouldn't be used</DD>
</DL>

</DL>
<HR>

<A NAME="Clear()"><!-- --></A>
<A NAME="Clear"><!-- --></A>
<H3>Clear</H3>
<PRE>
public void <B>Clear</B>() throw();
</PRE>
<DL>
<DD>Clears the current checksum.
</DD>

</DL>
<HR>

<A NAME="Compute(constvoid*,ulong)"><!-- --></A>
<A NAME="Compute"><!-- --></A>
<H3>Compute</H3>
<PRE>
public void <B>Compute</B>( const void* mem, ulong length ) throw();
</PRE>
<DL>
<DD>Computes and updates checksum from input.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>mem</code> - pointer to memory
<DD><code>length</code> - length of memory in bytes</DD>
</DL>

</DL>
<HR>

<A NAME="Get(char*,char*)"><!-- --></A>
<A NAME="Get"><!-- --></A>
<H3>Get</H3>
<PRE>
public void <B>Get</B>( char* sha, char* crc ) const throw();
</PRE>
<DL>
<DD>Returns the current checksum.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>sha</code> - SHA-1 string to be filled, set to to NULL if not needed
<DD><code>crc</code> - CRC-32 string to be filled, set to NULL if not needed</DD>
</DL>

</DL>
<HR>

<A NAME="GetCrc32()"><!-- --></A>
<A NAME="GetCrc32"><!-- --></A>
<H3>GetCrc32</H3>
<PRE>
public dword <B>GetCrc32</B>() const throw();
</PRE>
<DL>
<DD>Returns the current CRC-32 value.
</DD>
<DL>
<DT><B>Returns: </B><DD>CRC-32 value, 0 if unused</DD>
</DL>

</DL>
<HR>

<A NAME="GetSha1()"><!-- --></A>
<A NAME="GetSha1"><!-- --></A>
<H3>GetSha1</H3>
<PRE>
public const dword* <B>GetSha1</B>() const throw();
</PRE>
<DL>
<DD>Returns the current SHA-1 values.
</DD>
<DL>
<DT><B>Returns: </B><DD>SHA-1 values, zero-filled if unused</DD>
</DL>

</DL>
<HR>

<A NAME="operator!()"><!-- --></A>
<A NAME="operator!"><!-- --></A>
<H3>operator!</H3>
<PRE>
public bool <B>operator!</B>() const throw();
</PRE>
<DL>
<DD>Checks if checksum is cleared.
</DD>
<DL>
<DT><B>Returns: </B><DD>true if cleared</DD>
</DL>

</DL>
<HR>

<A NAME="operator&#60;(constHash&)"><!-- --></A>
<A NAME="operator<"><!-- --></A>
<H3>operator<</H3>
<PRE>
public bool <B>operator<</B>( const Hash& hash ) const throw();
</PRE>
<DL>
<DD>Tests for less-than.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>hash</code> - hash to compare with</DD>
<DT><B>Returns: </B><DD>true if input hash is less than this</DD>
</DL>

</DL>
<HR>

<A NAME="operator==(constHash&)"><!-- --></A>
<A NAME="operator=="><!-- --></A>
<H3>operator==</H3>
<PRE>
public bool <B>operator==</B>( const Hash& hash ) const throw();
</PRE>
<DL>
<DD>Tests for equality.
</DD>
<DL>
<DT><B>Parameters: </B><DD><code>hash</code> - hash to compare with</DD>
<DT><B>Returns: </B><DD>true if hashes are equal</DD>
</DL>

</DL>
<HR>

<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#eeeeff">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="../../index-overview-summary.html"><B>Overview</B></a>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="project-summary.html"><B>Project</B></a>&nbsp;</TD>
  <TD BGCOLOR="navy"> <FONT COLOR="white">&nbsp;<B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="project-tree.html"><B>Tree</B></a>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="../../index-deprecated-list.html"><B>Deprecated</B></a>&nbsp;</TD>
  <TD BGCOLOR="#eeeeff">    &nbsp;<a href="../../index-all.html"><B>Index</B></a>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<B>Nestopia Core API</B></EM>
</TD>
</TR>

<TR>
<TD><FONT SIZE="-2">
  <a href="../../index.html" target="_top"><B>FRAMES</B></a>  &nbsp;
&nbsp;<a href="../api/Nes..Api..Cartridge..Profile..Hash.html" target="_top"><B>NO FRAMES</B></a></FONT></TD>
</TR>
<TR>
<TD VALIGN="top"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>


</BODY>

</HTML>

